const express = require('express')
// 引入cors模块
const cors = require('cors')
const path = require('path');

const app = express()
// 导入各个路由模块
const userRouter = require('./router/user')
const carRouter = require('./router/car')
const orderRouter=require('./router/order')
const adminRouter=require('./router/admin')
const history = require('connect-history-api-fallback')

// 引入中间件
//所有的中间件都是在服务器下边写，所有的路由都可以用到浏览器
//浏览器先请求，中间件拦截，然后将请求的数据处理解析

// 启动服务器
app.listen(3000,()=>{
  console.log('serving is start Do Not Close')
})
// 必须在指定静态文件夹之前书写
app.use(history());
// 托管静态资源文件夹
app.use(express.static('./public'))
app.use(express.static(path.join(__dirname, 'public')));
// 使用中间件cors
app.use(cors({
  // 允许跨域的服务器地址,可以写多个
  origin: ['http://127.0.0.1:8080','http://localhost:8080','http://127.0.0.1:5050','http://localhost:5050','http://www.ali.sn.cn' ]
}));

// app.use(formidableMiddleware());

const bodyParser=require('express')
app.use(bodyParser.urlencoded({ extended: false }))

// 使用路由
app.use('/user',userRouter)
app.use('/car',carRouter)
app.use('/order',orderRouter)
app.use('/admin',adminRouter)
// 使用错误处理中间件,拦截所有路由中抛出的错误
app.use((err,req,res,next)=>{
  //err 得到的中间件传递过来的错误
  console.log(err);
  //设置http响应的状态码
  res.status(500).send({code:500,msg:'服务器端错误'})
});